package mytest;

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

public class Test02 {
    public static void main(String[] args) throws IOException {
        /**
         * 为了保证文件的安全性，就需要对原始文件进行加密存储，再使用的时候再对其进行解密处理。
         * 加密原理：
         *     对原始文件中的每一个字节数据进行更改，然后将更改以后的数据存储到新的文件中。
         *             对原始文件中的每一个字节数据进行更改，
         *             然后将更改以后的数据存储到新的文件中。
         * 解密原理：
         *     读取加密之后的文件，按照加密的规则反向操作，变成原始文件。
         */

        // 创建一个文件输入流，用于读取原始文件
        FileInputStream fis = new FileInputStream("ency.png");
        // 创建一个文件输出流，用于写入加密后的文件
        FileOutputStream fos = new FileOutputStream("redu.png");

        // 调用extracted方法进行加密操作
        extracted(fis, fos);

    }

    // 定义一个私有静态方法，用于实现加密操作
    private static void extracted(FileInputStream fis, FileOutputStream fos) throws IOException {
        int b;
        // 循环读取原始文件的每一个字节数据
        while ((b = fis.read()) != -1) {
            // 对读取到的字节数据进行异或操作，实现加密
            fos.write(b ^ 2);
        }
        // 关闭文件输出流
        fos.close();
        // 关闭文件输入流
        fis.close();
    }
}

